package com.cykj.faceledtv.di.component;

import android.app.Application;
import android.content.Context;

import com.cykj.faceledtv.MyApp;
import com.cykj.faceledtv.data.DataManager;
import com.cykj.faceledtv.di.ApplicationContext;
import com.cykj.faceledtv.di.module.ApplicationModule;

import javax.inject.Singleton;

import dagger.Component;


/**
 * 依赖注入 app 基本依赖：定义需要注入的业务类，具体实现
 *
 * @author jzh
 * @date 2018/12/11 17:10
 */

@Singleton
@Component(modules = ApplicationModule.class)
public interface ApplicationComponent {

    /**
     * 注入application
     *
     * @param app MyApp
     */
    void inject(MyApp app);

    /**
     * 上下文
     *
     * @return Context
     */
    @ApplicationContext
    Context context();

    /**
     * 得到application
     *
     * @return Application
     */
    Application application();

    /**
     * 得到数据管理层
     *
     * @return DataManager
     */
    DataManager getDataManager();
}
